8003ABD0	0x	???
ADDIU	SP,SP,FFD8
SW	RA,001C (SP)
SW	A0,0028 (SP)	;save 8003FFF8
SW	S1,0018 (SP)	;save [2]
JAL	80036ED0		;twiddle status
SW	S0,0014 (SP)	;save [1]
LW	T6,0028 (SP)	;T6=8003FFF8
ADDIU	AT,R0,0001	;AT=1
OR	S0,V0,R0
LHU	S1,0010 (T6)	;S1=[8]
BEQ	S1,AT,8003AC2C	;branch if 1...
ADDIU	AT,R0,0008
BNE	S1,AT,8003ACAC	;or at least if not 8
NOP
LW	T8,0028 (SP)	;T8=8003FFF8
ADDIU	T7,R0,0002	;T7=2
LUI	A0,8004
SH	T7,0010 (T8)	;save 2 in place of 8
LW	A1,0028 (SP)	;A1=8003FFF8
JAL	8002F294
ADDIU	A0,A0,CE28	;A0=8003CE28
BEQ	R0,R0,8003ACAC
NOP
//8003AC2C:	
LW	T9,0028 (SP)
LW	T0,0008 (T9)
BEQ	T0,R0,8003AC4C
NOP
LUI	T1,8004
ADDIU	T1,T1,CE28
BNE	T0,T1,8003AC70
NOP
//8003AC4C:	
LW	T3,0028 (SP)
ADDIU	T2,R0,0002
LUI	A0,8004
SH	T2,0010 (T3)
LW	A1,0028 (SP)
JAL	8002F294
ADDIU	A0,A0,CE28
BEQ	R0,R0,8003ACAC
NOP
//8003AC70:	
LW	T5,0028 (SP)
ADDIU	T4,R0,0008
SH	T4,0010 (T5)
LW	T6,0028 (SP)
LW	A0,0008 (T6)
JAL	8002F294
OR	A1,T6,R0
LW	T7,0028 (SP)
JAL	8002F2DC
LW	A0,0008 (T7)
OR	S1,V0,R0
LUI	A0,8004
ADDIU	A0,A0,CE28
JAL	8002F294
OR	A1,S1,R0
//8003ACAC:	
LUI	T8,8004
LW	T8,CE30 (T8)	;T8=8003CE30: [80145630]
BNEZ	T8,8003ACCC	;hope for a valid pointer
NOP
JAL	8002F2F4
NOP
BEQ	R0,R0,8003AD04
NOP	
//8003ACCC:	
LUI	T9,8004
LUI	T1,8004
LW	T1,CE28 (T1)	;T1=8003CE28: 8003FFF8
LW	T9,CE30 (T9)	;T9=8003CE30: [80145630]
LW	T2,0004 (T1)	;T2=8003FFFC: [11]
LW	T0,0004 (T9)	;T0=[80145634]: [8]
SLT	AT,T0,T2
BEQ	AT,R0,8003AD04	;T0 should be less than T2 to pull
NOP
ADDIU	T3,R0,0002
LUI	A0,8004
SH	T3,0010 (T9)	;2->[80145640]
JAL	8002F194		;an interrupt - finally!
ADDIU	A0,A0,CE28	;A0=8003CE28
//8003AD04:	
JAL	80036F40		;twiddle the status flag
OR	A0,S0,R0
LW	RA,001C (SP)
LW	S0,0014 (SP)
LW	S1,0018 (SP)
JR	RA
ADDIU	SP,SP,0028

+-+

8002F294	0x	???
LW	T8,0000 (A0)	;T8=8003CE28: [8003ED80]
LW	T7,0004 (A1)	;T7=8003FFFC: [11]
OR	T9,A0,R0		;T9=8003CE28
LW	T6,0004 (T8)	;T6=[8003ED84]: [0]
SLT	AT,T6,T7
BNEZ	AT,8002F2C8	;return if start? < end?
NOP
//8002F2B0:	loop, in a countdown sort of
OR	T9,T8,R0		;T9=8003CE28, which it should already
LW	T8,0000 (T8)	;T8=[8003ED80]
LW	T6,0004 (T8)	;T6=[8003ED84]: [0], again which it already does
SLT	AT,T6,T7
BEQ	AT,R0,8002F2B0	;loop until finally true...
NOP
//8002F2C8:
LW	T8,0000 (T9)	:T8=[8003ED80]
SW	T8,0000 (A1)	;[8003ED80]->8003FFF8
SW	A1,0000 (T9)	;8003FFF8->8003CE28
JR	RA
SW	A0,0008 (A1)	;8003CE28->80040000
